Hard disk drive with data error recovery using multiple reads and derived reliability information

ABSTRACT

A hard disk drive with a disk that has a plurality of data bits. The drive includes a circuit that reads each data bit n times and selects a value for the bit based on a reliability factor. The circuit may select a bit based at least in part on the most frequent occurrence of one of a plurality of values. For example, if more 0s occurred than 1s the bit would be set to 0. The reliability factor may be a ratio of the occurrence of 0s to the occurrence of 1s. A bit can be not selected or deselected if the reliability factor exceeds a threshold value.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique for reading data from adisk of a hard disk drive.

2. Background Information

Hard disk drives contain a plurality of magnetic heads that are coupledto rotating disks. The heads can magnetize and sense the magnetic fieldsof the disks to write and read data, respectively. The heads are coupledto a pivoting actuator arm that has a voice coil motor.

Data is typically stored on tracks that extend radially across the disksurfaces. The voice coil motor can be energized to pivot the actuatorarm and move the heads to different track locations. Each track istypically divided into a number of sectors. Each sector contains atleast one data field.

Data is read from the disks in accordance with a read operationcontrolled by the disk drive controller. The read operation typicallyincludes enabling a read gate of a read channel. Enabling the read gatecauses the heads to sense the magnetic fields of the disks. If the driveis unsuccessful in reading the data, the controller will retry the readoperation in accordance with a retry step from a retry look-up table.The retry look-up table typically contains a sequence of retry steps.Each retry step may utilize different head parameters. For example, theread current and cut-off frequency of the head may be changed for eachstep.

The disk drive will continue to retry the read operations in accordancewith the retry steps until data is successfully read from the disk, orthe drive has tried all of the retry steps in the table. The retrytechnique does not always insure a successful read of data. The errorscan be caused by random noise or a hard error such as a defective areaof the disk. It would be desirable to improve the quality of the retrytechnique to acquire accurate data, particularly for hard errors in thedrive.

BRIEF SUMMARY OF THE INVENTION

A hard disk drive with a disk that has a plurality of data bits. Thedrive includes a circuit that reads each data bit n times and selects avalue for the bit based at least in part on a reliability factor.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a top view of an embodiment of a hard disk drive;

FIG. 2 is a schematic of an electrical circuit for the hard disk drive;

FIG. 3 is an illustration showing a sector of a disk track being read ntimes to determine a reliability factor and select a bit value.

DETAILED DESCRIPTION

Disclosed is a hard disk drive with a disk that has a plurality of databits. The drive includes a circuit that reads each data bit n times andselects a value for the bit based at least in part on a reliabilityfactor. The circuit may select a bit based on the most frequentoccurrence of one of a plurality of values. For example, if more 0soccurred than 1s the bit would be set to 0. The reliability factor maybe a ratio of the occurrence of 0s to the occurrence of 1s. A bit can beselected as an unreliable bit, if the reliability factor is below athreshold value.

Referring to the drawings more particularly by reference numbers, FIG. 1shows an embodiment of a hard disk drive 10 of the present invention.The disk drive 10 may include one or more magnetic disks 12 that arerotated by a spindle motor 14. The spindle motor 14 may be mounted to abase plate 16. The disk drive 10 may further have a cover 18 thatencloses the disks 12.

The disk drive 10 may include a plurality of heads 20 located adjacentto the disks 12. Each head 20 may have separate write (not shown) andread elements (not shown). The heads 20 are gimbal mounted to a flexurearm 26 as part of a head gimbal assembly (HGA). The flexure arms 26 areattached to an actuator arm 28 that is pivotally mounted to the baseplate 16 by a bearing assembly 30. A voice coil 32 is attached to theactuator arm 28. The voice coil 32 is coupled to a magnet assembly 34 tocreate a voice coil motor (VCM) 36. Providing a current to the voicecoil 32 will create a torque that swings the actuator arm 28 and movesthe heads 20 across the disks 12.

The hard disk drive 10 may include a printed circuit board assembly 38that includes a plurality of integrated circuits 40 coupled to a printedcircuit board 42. The printed circuit board 40 is coupled to the voicecoil 32, heads 20 and spindle motor 14 by wires (not shown).

FIG. 2 shows an electrical circuit 50 for reading and writing data ontothe disks 12. The circuit 50 may include a pre-amplifier circuit 52 thatis coupled to the heads 20. The pre-amplifier circuit 52 has a read datachannel 54 and a write data channel 56 that are connected to aread/write channel circuit 58. The pre-amplifier 52 also has aread/write enable gate 60 connected to a controller 64. Data can bewritten onto the disks 12, or read from the disks 12 by enabling theread/write enable gate 60.

The read/write channel circuit 58 is connected to a controller 64through read and write channels 66 and 68, respectively, and read andwrite gates 70 and 72, respectively. The read gate 70 is enabled whendata is to be read from the disks 12. The write gate 72 is to be enabledwhen writing data to the disks 12. The controller 64 may be a digitalsignal processor that operates in accordance with a firmware and/orsoftware routine(s), including a routine(s) to write and read data fromthe disks 12. The read/write channel circuit 58 and controller 64 mayalso be connected to a motor control circuit 74 which controls the voicecoil motor 36 and spindle motor 14 of the disk drive 10. The controller64 may be connected to a non-volatile memory device 76. The memory 76may contain the firmware and/or software routine(s) performed by thecontroller 64.

Memory 76 and/or disk 12 may contain a retry look-up table that has aplurality of retry steps. The retry steps are performed to read datafrom the disk.

FIG. 3 is an illustration showing a track sector 100 being read n times.The track sector 100 includes a data section 102 and an error correctioncode (“ECC”) section 104. Each section 102 and 104 includes a pluralityof data bits. The data bits may each have a value of 0 or a value of 1.

The controller will cause a reading of each bit n times. The controllercan then select the most frequently occurring value as the value foreach bit. For example, if after n readings of a bit there were more 0sthan 1s then the bit will be set as a 0. Conversely, if there were more1s than 0s then the bit is set as a 1. It is preferable to select n asan odd number to avoid the occurrence of an equal number of 1s and 0s. Ameans for error correcting can select a bit value of 1, if 1 occurredmore times than a value of zero. The means for error correcting canselect a bit value of 0 if 0 occurred more times than a value of 1. Thistechnique can be used to select the value of all the bits in both thedata 102 and ECC 104 sections. After each bit is selected, conventionalerror correction routines using the bits selected in the ECC section 104can be employed to recover the data read from the disk.

The disk is typically organized into a plurality of adjacent tracks. Toreduce adjacent track interference the adjacent track(s) can be erasedbefore each reading of a track. The data from the adjacent tracks isstored in memory before erasure and then rewritten to avoid a loss ofdata. The read channel parameters may also be changed after each readcycle. This technique can be repeated multiple times and the result ofeach detected data bit can be voted to reduce the erasure noise.

Probability equations may be utilized, particularly if there is anunequal probability of the occurrence of a 1 or a 0. For example, thefollowing two probability equations may be utilized:

$\begin{matrix}{{p(0)} = {{\frac{m}{m + n}{p\left( {0❘0} \right)}} + {\frac{n}{m + n}{p\left( {0❘1} \right)}}}} & (1) \\{{p(1)} = {{\frac{m}{m + n}{p\left( {1❘0} \right)}} + {\frac{n}{m + n}{p\left( {1❘1} \right)}}}} & (2)\end{matrix}$

where;

m=the number of times a 0 is detected.

n=the number of times a 1 is detected.

p(0)=the probability that the bit is a 0.

p(1)=the probability that the bit is a 1.

p(0|0)=the probability that the bit is a 0 when a 0 is detected.

p(0|1)=the probability that the bit is a 0 when a 1 is detected.

p(1|0)=the probability that the bit is a 1 when a 0 is detected.

p(1|1)=the probability that the bit is a 1 when a 1 is detected.

The bit can be selected based on the highest value between p(0) andp(1). For example, if p(0) is higher than p(1), then the bit is set as a0, and vice versa.

When p(0|1) and p(1|0) are equal then P(0|1) and p(1|1) are also equaland the equations can be rewritten as:

$\begin{matrix}{{{p(0)} - {p(1)}} = {\frac{m - n}{m + n}\left( {{p\left( {0❘0} \right)} - {p\left( {0❘1} \right)}} \right)}} & (3)\end{matrix}$

If p(0)−p(1) is a positive number then the bit is set to a 0, if thedifference is a negative number then the difference is set to a 1.

A reliability factor is also determined and used to select or deselectthe bit. The reliability factor may be a ratio of the number of timesthe bit was a 0 (m) to the number of times the bit was a 1 (n), or m/n.A ratio of m/(m+n) when the selected value is 0, or n/(m+n) when theselected value is 1, could also be used. Likewise, if the number ofretries is always the same, m+n is a constant, and then m could be thereliability factor if the selected value is 0, and n could be thereliability factor if the selected value is 1.

The reliability factor can be used to determine whether the bit shouldbe selected. For example, if the ratio m/n is close to 1 this mayindicate that the selected bit value is unreliable. The reliabilityfactor can be compared with a threshold. If the reliability factor isbelow the threshold the bit value is selected as an unreliable bit. Thatarea of the disk may be erased and flagged as defective.

The reliability factor may also be used in an error correction code,such as a Reed-Solomon code. It is known that for a Reed-Solomon codewith 2t ECC symbols, the code can correct up to d error symbols and ferasures of known locations where 2t≧2d+f. The reliability factor can beused to identify erasure locations, to increase the total number ofdetected error symbols d+f in a Reed-Solomon code. For example, a symboltypically includes multiple bits. If it is determined that any one ofthe bits is unreliable the entire symbol is considered an erasure.

While certain exemplary embodiments have been described and shown in theaccompanying drawings, it is to be understood that such embodiments aremerely illustrative of and not restrictive on the broad invention, andthat this invention not be limited to the specific constructions andarrangements shown and described, since various other modifications mayoccur to those ordinarily skilled in the art.

1. A hard disk drive, comprising: a disk having a track with a bit andan adjacent track; a head coupled to said disk for detecting an error inthe bit on the track including a write head for erasing the adjacenttrack and rewriting the adjacent track after the bit is read; a memory,having a retry look-up table; and a circuit for reading the bit n timesand for selecting a value for the bit based at least in part on areliability factor.
 2. The disk drive of claim 1, wherein said circuitselects a bit value of 0, if 0 occurred more times than a value of
 1. 3.The disk drive of claim 1, wherein said circuit selects a bit value of1, if 1 occurred more times than a value of
 0. 4. The disk drive ofclaim 1, wherein said reliability factor is a ratio of a number of timesa 0 or 1 occurred to a number of times a 1 or 0 occurred, respectively.5. The disk drive of claim 1, wherein said reliability factor is used inan error correction code.
 6. A hard disk drive, comprising: a diskhaving a track with a bit and an adjacent track; a head coupled to saiddisk for detecting an error in the bit on the track including a writehead for erasing the adjacent track and rewriting the adjacent trackafter the bit is read; a memory, having a retry look-up table; and meansfor error correcting reading the each data bit n times and selecting avalue for the bit based at least in part on a reliability factor.
 7. Thedisk drive of claim 6, wherein said means for error correcting selects abit value of 0, if 0 occurred more times than a value of
 1. 8. The diskdrive of claim 6, wherein said means for error correcting selects a bitvalue of 1, if 1 occurred more times than a value of
 0. 9. The diskdrive of claim 6, wherein said reliability factor is a ratio of a numberof times a 0 or 1 occurred to a number of times a 1 or 0 occurred,respectively.
 10. The disk drive of claim 6, wherein said reliabilityfactor is used in an error correction code.
 11. A method for readingdata from a disk of a hard disk drive, comprising: storing written datafrom an adjacent track; erasing the adjacent track of the disk having atrack with a bit; reading the bit n number of times; determining a mostfrequent occurrence of a value of the bit from a plurality of values;determining a reliability factor; and, selecting the most frequentlyoccurring value as the value of the bit if the reliability factor doesnot exceed a threshold.
 12. The method of claim 11, wherein the bitvalue is selected as a 0, if 0 occurred more times than a value of 1.13. The method of claim 11, wherein the bit value is selected as a 1, if1 occurred more times than a value of
 0. 14. The method of claim 11,wherein the reliability factor is a ratio of a number of times a 0 or 1occurred to a number of times a 1 or 0 occurred, respectively.
 15. Themethod of claim 11, further comprising using the reliability factor inan error correction code.